package day16.myreflect04;

import java.lang.reflect.Method;

/**
 * @author Xiao
 * @date 2021/8/10
 */
public class MethodDemo01 {
    /**
     * 获取Method对象
     * 	Method[] getMethods()：返回所有公共成员方法对象的数组，包括继承的；
     * 	Method[] getDeclaredMethods()：返回所有成员方法对象的数组，不包括继承的；
     * 	Method getMethod(String name,Class<?>... parameterTypes)：返回单个公共成员方法对象；
     * 	Method getDeclaredMethod(String name,Class<?>... parameterTypes)：返回单个成员方法对象；
     */
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
        Class<?> clazz = Class.forName("day16.myreflect04.Student04");
        /**返回所有公共成员方法对象的数组，包括继承的*/
        Method[] methods = clazz.getMethods();
        /**返回所有成员方法对象的数组，不包括继承的*/
        Method[] delcMethods = clazz.getDeclaredMethods();
        /**返回单个公共成员方法对象*/
        Method show1 = clazz.getMethod("show1");
        Method show2 = clazz.getMethod("show2", String.class);
        Method show3 = clazz.getMethod("show3",
                int.class, int.class);
        /**返回单个成员方法对象*/
        Method show = clazz.getDeclaredMethod("show");
        System.out.println(show1);
        System.out.println(show2);
        System.out.println(show3);
        System.out.println(show);
    }
}
